1. Field of the Invention
The invention relates to the interfacing of circuits inside an integrated electronic circuit and, more particularly, to the control of data streams between various entities inside an integrated electronic circuit.
2. Description of the Related Art
Integrated circuit technology makes it possible to produce complex circuits on a single silicon chip. The evolution of the technology makes it possible to obtain an increasingly fine precision of etching, which can be used to increase the number of transistors for a given surface area while increasing the speed of operation and reducing the consumption of electricity. Large dimension circuits, for example those having a surface area greater than a square centimeter, which are currently produced with a fineness of etching of less than 90 nm, may thus comprise more than a billion transistors while operating at frequencies greater than a gigahertz.
Large dimension integrated electronic circuits are called “System On a Chip” or SOC because they correspond to complete electronic systems that may comprise several basic circuits such as microprocessors, memories and many interfaces. SOCs are designed by assembling several individually designed electronic circuits. The various electronic circuits communicate with one another via electric conductors of the appropriate interfacing means.
Known interfacing means include data buffers placed at the input of the electronic circuits to be interfaced. The data buffers are for example of the “First In-First Out” type, better known by the abbreviation FIFO. These data buffers are used to receive and store data in order to regulate the data stream according to the availability of the circuit. A circuit sending data may send data to a destination circuit before the latter is available to process them. However, before sending data to a data buffer, it is desirable to ensure that the latter has sufficient capacity to receive and store these data with a view to processing them.
Conventionally, FIFO buffers have outputs delivering items of information on the fill status, which indicate for example whether the buffer is full, half-full or empty. A problem arises when the integrated circuit is of large dimensions and operates at high clock frequencies. The higher the clock frequency, the shorter the time separating two data transmissions. Furthermore, in a large dimension integrated circuit, the electric conductors providing the connection between two circuits may be relatively long and hence introduce significant propagation times, which may be greater than a period of the clock signal used to synchronize the data transfer. In such a situation, the fill status information may reach the sending circuit after a surplus of data has been sent, which causes data to be lost.
A technique for remedying this problem consists in verifying before each data transmission whether the buffer of the receiving circuit is not full. Such a technique considerably slows the data transfers because it is then necessary to wait twice the propagation time necessary to route the data over a conductor between two successive data transmissions.
A similar problem of verifying the fill status of the data buffer exists in the field of broadband networks. It is necessary to ensure at a sending device that the data buffer of a receiving device has sufficient memory space before sending data packets, in order to avoid losses of information.
The article “Credit-Based Flow Control for ATM Networks”, H. T. KUNG and R. MORRIS, IEEE Network Magazine, Mar. 1995, reveals a solution for improving the management of data transmissions to a remote data buffer without having to wait for information on the fill status of the said buffer. The solution consists in providing a counter in the data sending device to count the quantity of data sent to a data receiving device. The data receiving device also has a counter to count the quantity of data extracted from the data buffer. The status of the counter of the receiving device is regularly sent to the sending device and the said counter is reset to zero. On receipt, the data sending device calculates the remaining space available in the data buffer by subtracting the quantity of data sent and adding the quantity of data extracted, respectively from and to a variable corresponding to the total memory capacity of the data buffer.
However, a data buffer of a broadband network, such as an ATM network is extremely large, for example of the order of several megabits, and it is possible to use appropriate management means. In the case of an integrated circuit, the data buffers have a small capacity, for example a few tens of bytes. That is why it is unthinkable to have in an integrated circuit a management system as large as that of a broadband network.
In addition, in a broadband network such as the ATM, data may be lost, whereas in an integrated circuit the data always arrive correctly at their destination since the connection is a strip of metal.